home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / mus / misc / RaveScope.lha / RaveScope / Developer / Include / ravescope.i < prev   
Encoding:
Text File  |  1998-09-22  |  15.4 KB  |  387 lines

  1. ;/* All changes must be reflected in ravescope.h */
  2.  
  3.         IFND    RAVESCOPE
  4. RAVESCOPE    SET    1
  5.  
  6. RAVE_ID:    EQU    $BAD5EED5                * Current rave/host ID
  7.  
  8.         incdir    include:
  9.         include    graphics/gfx.i
  10.         include    graphics/rastport.i
  11.         include exec/types.i
  12.         include    exec/ports.i
  13.         incdir    ""
  14.         include    include/monoscope.i
  15.  
  16. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  17. *                                                *
  18. *        Global RaveScope constants                            *
  19. *                                                *
  20. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  21.  
  22. rs_VERSION:    equ    102
  23.  
  24. SUCCESS:    equ    1
  25. FAIL:        equ    0
  26. INFOHGT:    equ    37
  27.  
  28. SCREEN:        equ    0
  29. DISPLAYID:    equ    1
  30. INVERT:        equ    2
  31. WINLEFT:    equ    3
  32. WINTOP:        equ    4
  33. WINWIDTH:    equ    5
  34. WINHEIGHT:    equ    6
  35. SCRWIDTH:    equ    7
  36. SCRHEIGHT:    equ    8
  37. WRAPACCURACY:    equ    9
  38. TRADACCURACY:    equ    10
  39. ALTACCURACY:    equ    11
  40. WRAPMODE:    equ    12
  41. TRADMODE:    equ    13
  42. ALTMODE:    equ    14
  43. STROBO:        equ    15
  44. VERSION:    equ    16
  45. NUMARGS:    equ    17
  46.  
  47. PLY_NONE:    equ    0
  48. PLY_HIP:    equ    1
  49. PLY_HOST:    equ    2
  50. PLY_CHK_INT:    equ    150;                /* Player check interval (frames) */
  51.  
  52. PROJECT:    equ    0;                /* Offsets to the menu titles */
  53. SETTINGS:    equ    3;
  54. PLAYERS:    equ    11;
  55.  
  56. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  57. *                                                *
  58. *        Structure for messages sent to/from the RaveScope                *
  59. *                                                *
  60. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  61.  
  62.         STRUCTURE    RaveMsg,0;            /* The message used by the Ravescope/hosts */
  63.            STRUCT    rmsg_oMsg,MN_SIZE;        /* Standard msg struct (struct Message) */
  64.         ULONG    rmsg_oData;            /* Message data */
  65.         UWORD    rmsg_oType;            /* Message class */
  66.          BOOL    rmsg_oResult;            /* See below for result codes */
  67.         LABEL    rmsg_SIZEOF;
  68.  
  69. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  70. *
  71. *        Message result codes
  72.  
  73. RMSG_SUCCESS:    equ    1;                /* The recieved msg's request could be fulfilled */
  74. RMSG_FAILURE:    equ    0;                /* The recieved msg's request could NOT be fulfilled */
  75.  
  76.  
  77. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  78. *
  79. *        Message types
  80.  
  81.         BITDEF    RMSG,FROMRAVE,14;        /* Message is from the RaveScope */
  82.         BITDEF    RMSG,FROMHOST,15;        /* Message is from a host */
  83.         BITDEF    RMSG,FROMDISP,13;        /* Message is from the RaveScope display */
  84.         BITDEF    RMSG,TORAVE,12;            /* Message is to the RaveScope */
  85.         BITDEF    RMSG,TOHOST,11;            /* Message is to a host */
  86.         BITDEF    RMSG,TODISP,10;            /* Message is to the rave display */
  87.  
  88. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  89. *
  90. *        Message that can be sent from the RaveScope main to the host and the display
  91.  
  92. RMSG_RAVEQUIT:    equ    RMSGF_FROMRAVE+0;        /* The RaveScope wants to quit. */
  93. RMSG_RAVEBUSY:    equ    RMSGF_FROMRAVE+1;        /* The RaveScope is busy, sent when a stopflag has been set (and no stopflags was set before this) */
  94. RMSG_RAVEREADY:    equ    RMSGF_FROMRAVE+2;        /* The RaveScope is ready, sent when a stopflags has been cleared (which resulted in all stopflags being cleared) */
  95.  
  96.  
  97. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  98. *
  99. *        Message that can be sent from the RaveScope main to the host
  100.  
  101. RMSG_LEAVERAVE    equ    RMSGF_FROMRAVE!RMSGF_TOHOST+0;    /* The RaveScope has been requested by another player. */
  102. RMSG_GRABRAVE:    equ    RMSGF_FROMRAVE!RMSGF_TOHOST+1;    /* The RaveScope wants to grab us. */
  103.  
  104.  
  105. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  106. *
  107. *        Message that can be sent from the RaveScope main to the display
  108.  
  109. RMSG_ADDPORTS:    equ    RMSGF_FROMRAVE!RMSGF_TODISP+0;    /* Create message ports (dbuff-related) */
  110. RMSG_DELPORTS:    equ    RMSGF_FROMRAVE!RMSGF_TODISP+1;    /* Delete message ports (dbuff-related) */
  111. RMSG_POKESTICK:    equ    RMSGF_FROMRAVE!RMSGF_TODISP+2;    /* Poke display-task with a stick */
  112.  
  113.  
  114. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
  115. *
  116. *        Message that can be sent from the RaveScope main to itself
  117. *
  118.  
  119. RMSG_GRABHOST:    equ    RMSGF_FROMRAVE!RMSGF_TORAVE+0;    /* Grab host with name in data-field */
  120.  
  121. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  122. *
  123. *    Message that can be sent from the host to the RaveScope
  124.  
  125. RMSG_NEWHOST:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+0;    /* Ask the RaveScope to grab host */
  126. RMSG_PLYHALTED:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+1;    /* The host's player is halted */
  127. RMSG_PLYACTIVE:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+2;    /* The host's player is active */
  128. RMSG_HOSTBUSY:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+3;    /* The host is busy */
  129. RMSG_HOSTREADY:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+4;    /* The host is ready */
  130. RMSG_HOSTQUIT:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+5;    /* Host wants to quit */
  131. RMSG_CLOSESCOPE    equ    RMSGF_FROMHOST!RMSGF_TORAVE+6;    /* Ask the RaveScope to close the scope */
  132. RMSG_OPENSCOPE:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+7;    /* Ask the RaveScope to open the scope */
  133. RMSG_KILLRAVE:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+8;    /* Force the RaveScope to quit */
  134. RMSG_DOICONIFY:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+9;    /* Ask the RaveScope to iconify itself */
  135. RMSG_DEICONIFY:    equ    RMSGF_FROMHOST!RMSGF_TORAVE+10;    /* Ask the RaveScope to de-iconify itself */
  136. RMSG_SAVECONFIG equ    RMSGF_FROMHOST!RMSGF_TORAVE+11;    /* Ask the RaveScope to save current config */
  137.  
  138. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  139. *
  140. *    Message that can be sent from the display to the RaveScope
  141.  
  142. RMSG_HIPHALTED:    equ    RMSGF_FROMDISP!RMSGF_TORAVE+0;    /* Hippoplayer stopped playing */
  143. RMSG_HIPACTIVE:    equ    RMSGF_FROMDISP!RMSGF_TORAVE+1;    /* Hippoplayer started playing */
  144. RMSG_LOSTHIP:    equ    RMSGF_FROMDISP!RMSGF_TORAVE+2;    /* Hippoplayer wants to quit */
  145.  
  146. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  147. *                                                *
  148. *        The RaveScope structure                                *
  149. *                                                *
  150. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  151.  
  152.        STRUCTURE    RaveScope,0
  153.  
  154.            STRUCT    rs_orport,MP_SIZE;        /* For use by the hosts */
  155.  
  156.        * ID and version *
  157.  
  158.         ULONG    rs_oID;                /* BAD5EED5, must be filled in */
  159.         ULONG    rs_oVersion;            /* 101 for the second release (1.1) */
  160.            STRUCT    rs_oReserved1,40;        /* 40 reserved bytes */
  161.  
  162.        * Volatile pointers *
  163.  
  164.          APTR    rs_oHost;
  165.          APTR    rs_ohport;
  166.          APTR    rs_oScope;
  167.          APTR    rs_oTask1Ptr;
  168.          APTR    rs_oScreen;
  169.          APTR    rs_oWindow;
  170.          APTR    rs_oDestBM;            /* Dest BitMap for scope */
  171.          APTR    rs_oHeadPtr;            /* Ptr to channel structures */
  172.            STRUCT    rs_oReserved2,40;        /* 40 reserved bytes */
  173.  
  174.        * Volatile variables *
  175.  
  176.         ULONG    rs_oWidth;
  177.         ULONG    rs_oHeight;
  178.         ULONG    rs_oScpWidth;
  179.         ULONG    rs_oScpHeight;
  180.          LONG    rs_oTradAcc;
  181.          LONG    rs_oAltrAcc;
  182.          WORD    rs_oWrapAcc;
  183.                  BOOL    rs_oBusy;            /* Set while initing */
  184.         UWORD    rs_oBMWidth;            /* Width of display bitmap */
  185.          BYTE    rs_oWrapOn;
  186.          BYTE    rs_oTradOn;
  187.          BYTE    rs_oAltrOn;            /* Init the modes (on/off) */
  188.          BYTE    rs_oOnTop;
  189.          BYTE    rs_oPlayer;            /* Player grabbed (0=none) */
  190.          BYTE    rs_oPad_byte1
  191.            STRUCT    rs_oReserved3,40;        /* 40 reserved bytes */
  192.  
  193.        * Pointer declarations *
  194.  
  195.          APTR    rs_oRaveReq;
  196.            STRUCT    rs_oScrBfrs,2*4;
  197.            STRUCT    rs_oScrBfrPorts,2*4;
  198.          APTR    rs_odport;            /* Display task's message port */
  199.          APTR    rs_orportd;            /* RaveScopes msgport for displaytask */
  200.          APTR    rs_oIconPort;            /* Msgport to use when iconified */
  201.          APTR    rs_oMainTask;
  202.          APTR    rs_oRDArgs;
  203.          APTR    rs_oMenu;            /* The Ravescope menu */
  204.          APTR    rs_oDynMenu;            /* Pointer to dynamic NewMenu struct */
  205.          APTR    rs_oAppIcon;            /* Ptr to the appicon structure */
  206.          APTR    rs_oChunkyBuffer;        /* Ptr to the chunky buffer (when using colours) */
  207.          APTR   rs_oVisualInfo;            /* Visual info */
  208.          APTR    rs_oScopeDest;            /* Display scope here */
  209.          APTR    rs_oGet4Upd_f;            /* Ptr to ms_Get4Update() */
  210.          APTR    rs_oGet4Disp_f;            /* Ptr to ms_Get4Display() */
  211.          APTR    rs_oMakeRoom_f;            /* Ptr to chan expansion routine */
  212.          APTR    rs_oObtainCfg_f;        /* Ptr to rs_ObtainCfg() */
  213.          APTR    rs_oResetCfg_f;            /* Ptr to rs_ResetCfg() */
  214.          APTR    rs_oReadCfg_f;            /* Ptr to rs_ReadCfg() */
  215.          APTR    rs_oMousePtr;
  216.          APTR    rs_oErrMsg;            /* Error message */
  217.            STRUCT    rs_oReserved4,40;        /* 40 reserved bytes */
  218.  
  219.        * Structures *
  220.  
  221.            STRUCT    rs_oChanHead,scph_SIZEOF;    /* ScopeHeader structure */
  222.            STRUCT    rs_oChannels,4*scpc_SIZEOF;    /* 4 ScopeChannel structs */
  223.            STRUCT    rs_oEmptyBM,bm_SIZEOF;
  224.            STRUCT    rs_oRectangle,ra_SIZEOF;
  225.            STRUCT    rs_oTempRP,rp_SIZEOF;        /* Temporary rastport for WritePixelArray8 */
  226.            STRUCT    rs_oTempBM,bm_SIZEOF;        /* Temporary bitmap str for WritePixelArray8 */
  227.            STRUCT    rs_oReserved5,40;        /* 40 reserved bytes */
  228.  
  229.        * Other variables *
  230.  
  231.         ULONG    rs_oDisplayID;
  232.         ULONG    rs_oActFlag;            /* The activate flag */
  233.          LONG    rs_oErrCode;            /* RaveScope return code */
  234.            STRUCT    rs_oReserved6,40;        /* 40 reserved bytes */
  235.  
  236.         UWORD    rs_oToggle;
  237.         UWORD    rs_oAvailPlys;            /* Number of players currently available */
  238.          WORD    rs_oWantedSTop;
  239.          WORD    rs_oWantedSLft;
  240.          WORD    rs_oWantedSWdt;
  241.          WORD    rs_oWantedSHgt;
  242.          WORD    rs_oWantedWWdt;
  243.          WORD     rs_oWantedWHgt;
  244.          WORD    rs_oWantedWTop;
  245.          WORD    rs_oWantedWLft;
  246.          BOOL    rs_oLev3Added;
  247.          BOOL    rs_oUseWin;            /* Use window? */
  248.          BOOL    rs_oSafe2Wrt;
  249.          BOOL    rs_oSafe2Chg;
  250.          BOOL    rs_oShiftToggle;
  251.          BOOL    rs_oCfgParsed;            /* Config parsed? */
  252.            STRUCT    rs_oStroboDel,2;        /* Strobo delays */
  253.            STRUCT    rs_oReserved7,40;        /* 40 reserved bytes */
  254.  
  255.         UBYTE    rs_oKillWin;            /* Events >0 will kill the window */
  256.         UBYTE    rs_oStroboNum;            /* Strobo number (0/1) */
  257.         UBYTE    rs_oStopFlags;            /* See below for stopflags */
  258.         UBYTE    rs_oStroboCtr;            /* Strobo count down */
  259.         UBYTE    rs_oUseCols;            /* Use colours? */
  260.         UBYTE    rs_oUsingCols;            /* Using colours? */
  261.         UBYTE    rs_oShowTemplate;        /* Show template on exit? */
  262.         UBYTE    rs_oInvert;            /* Invert display? */
  263.         UBYTE    rs_oFromWB;            /* Started from wb? (if no, printf will execute) */
  264.         UBYTE    rs_oScopeCleared;        /* Set when scope is cleared */
  265.          BYTE    rs_orport_SigBit;        /* RavePort's signal bit */
  266.          BYTE    rs_orport_added;        /* Set when rport has been AddPort()ed */
  267.          BYTE    rs_oMenuStripSet;        /* Set if SetMenuStrip() has been called */
  268.          BYTE    rs_oStroboOn;            /* Strobo on/off */
  269.          BYTE    rs_oHipOpenCount;        /* Keeps track of our changes to hip's opencount */
  270.          BYTE    rs_oPadByte;
  271.            STRUCT    rs_oReserved8,40;        /* 40 reserved bytes */
  272.         LABEL    rs_SIZEOF;
  273.  
  274.  
  275. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  276. *
  277. *    STOPFLAGS: The host/display must check all these flags, and if any of them are set,
  278. *    Wait() until they are all cleared.
  279. *
  280.         BITDEF    RSSF,RAVEBUSY,0;        /* The RaveScope is busy */
  281.         BITDEF    RSSF,HOSTBUSY,1;        /* The host is busy */
  282.         BITDEF    RSSF,PLYHALTED,2;        /* The host's player is not playing. */
  283.  
  284.  
  285. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  286. *                                                *
  287. *        The RaveScopeCfg structure                            *
  288. *                                                *
  289. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  290.  
  291.         STRUCTURE    RaveScopeCfg,0;            /* 120 bytes config data */
  292.         ULONG    cfg_oID;            /* Config ID */
  293.         ULONG    cfg_oDisplayID;            /* Ravescope's display mode */
  294.         UWORD    cfg_oWrapAcc;            /* Wrapped accuracy */
  295.         UWORD    cfg_oTradAcc;            /* Traditional accuracy */
  296.         UWORD    cfg_oAltrAcc;            /* Alternative accuracy */
  297.          WORD    cfg_oSLeft;            /* Ravescreen's left pos */
  298.          WORD    cfg_oSTop;            /* Ravescreen's top pos */
  299.          WORD    cfg_oSWidth;            /* Ravescreen's width */
  300.          WORD    cfg_oSHeight;            /* Ravescreen's height */
  301.          WORD    cfg_oWLeft;            /* Ravewindow's left pos */
  302.          WORD    cfg_oWTop;            /* Ravewindow's top pos */
  303.          WORD    cfg_oWWidth;            /* Ravewindow's width */
  304.          WORD    cfg_oWHeight;            /* Ravewindow's height */
  305.          WORD    cfg_oALeft;            /* Ravewin's alternative left pos */
  306.          WORD    cfg_oATop;            /* Ravewin's alternative top pos */
  307.          WORD    cfg_oAWidth;            /* Ravewin's alternative width */
  308.          WORD    cfg_oAHeight;            /* Ravewin's alternative height */
  309.         UBYTE    cfg_oUseWin;            /* Use win at startup or not? */
  310.         UBYTE    cfg_oUseCols;            /* Use colours? */
  311.            STRUCT    cfg_oReserved,72;        /* 72 reserved bytes */
  312.          BYTE    cfg_oStroboOn;            /* Strobo on/off */
  313.            STRUCT    cfg_oStroboDel,2;        /* Strobo delays */
  314.          BYTE    cfg_oScreen;            /* Open directly on screen? */
  315.          BYTE    cfg_oInvert;            /* Invert colours? */
  316.          BYTE    cfg_oWrap;            /* Wrapped mode on? */
  317.          BYTE    cfg_oTrad;            /* Traditional mode on? */
  318.          BYTE    cfg_oAltr;            /* Alternative mode on? */
  319.            STRUCT    cfg_oPubScrName,100;        /* 100 bytes name of pubscreen to open on (UBYTE[100]) */
  320.         LABEL    cfg_SIZEOF;
  321.  
  322.  
  323. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  324. *
  325. *    The RaveHost structure
  326. *
  327.  
  328.         STRUCTURE    RaveHost,0
  329.            STRUCT    rh_oMsgPort,MP_SIZE;        /* Host's msgport (struct MsgPort) */
  330.            STRUCT    rh_oChanHdrs,scph_SIZEOF*3;    /* 3 channel headers (struct ScopeHeader[3]) */
  331.            STRUCT    rs_oReserve1,40;        /* 40 reserved bytes */
  332.  
  333.         ULONG    rh_oID;                /* $BAD5EED5 (filled in) (ULONG) */
  334.          APTR    rh_oRaveBase;            /* Ptr to RaveScope globals (struct RaveScope *) */
  335.          APTR    rh_oOldScph;            /* Last scopeheader to be updated (struct ScopeHeader *) */
  336.          APTR    rh_oThisTask;            /* Ptr to this task (struct Task *) */
  337.          FPTR    rh_oGet4Upd_f;            /* Ptr to ms_Get4Update() (APTR) */
  338.          FPTR    rh_oMakeRoom_f;            /* Ptr to chan expansion routine (APTR) */
  339.          APTR    rh_oFileReq;            /* Ptr to reqtools (struct rtFileRequester *) */
  340.          APTR    rh_oSysBase;            /* exec.library base (struct ExecBase *) */
  341.          APTR    rh_oDOSBase;            /* dos.library base (struct Library *) */
  342.          APTR    rh_oIntuiBase;            /* intuition.library base (struct Library *) */
  343.          APTR    rh_oRTBase;            /* reqtools.library base (struct Library *) */
  344.          APTR    rh_oHostName;            /* Ptr to name of this host (STRPTR) */
  345.          APTR    rh_oCfgPtr;            /* Ptr to the configuration data (struct HostConfig *) */
  346.          APTR    rh_oCfgName;            /* Ptr to full path (w/name) to host's config (STRPTR) */
  347.          APTR    rh_oError;            /* Ptr to errormessage (UBYTE *) */
  348.         ULONG    rh_oCfgSize;            /* Size of allocated/loaded config (ULONG) */
  349.         ULONG    rh_oSigMask;            /* Signal mask, for use by the host (ULONG) */
  350.            STRUCT    rs_oReserve2,40;        /* 40 reserved bytes */
  351.  
  352.         UBYTE    rh_oFromWB;            /* Set if starting ravescope from hostfuncs */
  353.          BYTE    rh_oSignal;            /* The messageport's signalbit (BYTE) */
  354.          BYTE    rh_oPopup;            /* 1/4: Popup when started? (BYTE) */
  355.          BYTE    rh_oActivate;            /* 2/4: Activate on popup? (BYTE) */
  356.          BYTE    rh_oUnused;            /* 3/4: Used to be popup => steal (BYTE) */
  357.          BYTE    rh_oQuitEqKill;            /* 4/4: Quit => kill the ravescope? (BYTE) */
  358.          BYTE    rh_oPlaying;            /* Set when the host's player is playing (BYTE) */
  359.          BYTE    rh_oFreeRHStr;            /* Set if the RaveHost struct must be freed (BYTE) */
  360.          BYTE    rh_oMsgPortOk;            /* Set when the msgport is created (BYTE) */
  361.          BYTE    rh_oHostQuit;            /* Set when we are about to quit (BYTE) */
  362.            STRUCT    rs_oReserve3,40;        /* 40 reserved bytes */
  363.         ALIGNLONG    *+-
  364.         LABEL    rh_SIZEOF
  365.  
  366. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  367. *
  368. *    The HostConfig structure
  369. *
  370.  
  371.         STRUCTURE    HostConfig,0
  372.         ULONG    hcfg_oID;            /* Config ID (ULONG) */
  373.            STRUCT    hcfg_oRaveCfg,cfg_SIZEOF;    /* The RaveScope's config details (struct RaveScopeCfg) */
  374.          BYTE    hcfg_oPopup;            /* 1/4: Popup flag (BYTE) */
  375.          BYTE    hcfg_oActivate;            /* 2/4: Activate flag (BYTE) */
  376.          BYTE    hcfg_oUnused;            /* 3/4: Used to be Popup => steal (BYTE) */
  377.          BYTE    hcfg_oQuitEqKill;        /* 4/4: Quit => kill? (BYTE) */
  378.            STRUCT    hcfg_oReserved20,20;        /* 20 reserved bytes (BYTE[20]) */
  379.            STRUCT    hcfg_oRaveName,500;        /* 500 bytes path to ravescope exe (UBYTE[500]) */
  380.         LABEL    hcfg_SIZEOF;            /* Size of config */
  381.  
  382.  
  383.  
  384.  
  385.          ENDC   ; RAVESCOPE
  386.  
  387.